<template>
  <view class="page-wrapper global-wrapper bgF2">
    <JHeaderTitle title="发起进件" bgColor="#f2f2f2" />

    <view class="select-title">商户</view>
    <JMainCard pd="0" wrapPd="30rpx">
      <view class="select-wrapper" @tap="jumpPage('mch')">
        <view class="select-mch" v-if="mchInfo.mchNo == undefined"> 请选择商户 </view>
        <view class="mch-info" v-else>
          <image src="/static/equipmentImg/mch-list.svg" mode="scaleToFill" />
          <view
            >{{ mchInfo.mchName }} <text>{{ mchInfo.mchNo }}</text>
          </view>
        </view>
        <image src="/static/iconImg/right-arrow.svg" mode="scaleToFill" />
      </view>
    </JMainCard>
    <template v-if="mchInfo.mchNo">
    <view class="select-title change-config">
        <text>自动配置到应用</text>
        <switch style=" transform: scale(1.2)" color="#BF80FF" :checked="vdata.configAppIdFlag"  @change="isConfigAppId" />
    </view>
    <JMainCard pd="0" wrapPd="30rpx" v-if="vdata.configAppIdFlag">
      <view class="select-wrapper" @tap="jumpPageAppId('appId', appInfo.appId, { mchNo: mchInfo.mchNo })">
        <view class="select-mch" v-if="!appInfo.appId"> 请选择应用 </view>
        <view class="mch-info" v-else>
          <image src="/static/iconImg/icon-app-selected.svg" mode="scaleToFill" />
          <view
            >{{ appInfo.appName }} <text>{{ appInfo.appId }}</text>
          </view>
        </view>
        <image src="/static/iconImg/right-arrow.svg" mode="scaleToFill" />
      </view>
    </JMainCard>
    </template>
    <view class="select-title">渠道</view>
    <JMainCard pd="0" wrapPd="30rpx">
      <view class="select-wrapper" @tap="pay.open(payInfo)">
        <view class="select-mch" v-if="payInfo.ifCode === undefined"> 请选择渠道 </view>
        <view class="mch-info" v-else>
          <view class="img-wrapper bdR10" :style="{ backgroundColor: payInfo.bgColor }">
            <image :src="payInfo.icon" mode="scaleToFill" />
          </view>
          <view
            >{{ payInfo.ifName }} <text>{{ payInfo.remark }}</text>
          </view>
        </view>
        <image src="/static/iconImg/right-arrow.svg" mode="scaleToFill" />
      </view>
    </JMainCard>
    <view class="select-footer">
      <JButton pd="30rpx 30rpx 50rpx 30rpx" @HandleTouch="next">下一步</JButton>
    </view>
  </view>
  <SelectedPay ref="pay" @selected="selected" />
</template>

<script setup>
import { ref,reactive } from 'vue'
import { onShow,onLoad,onUnload } from '@dcloudio/uni-app'
import { $applyPreCheck,$findMer,$getMchAppList } from '@/http/apiManager.js'
import JHeaderTitle from '@/components/newComponents/JHeaderTitle/JHeaderTitle'
import JMainCard from '@/components/newComponents/JMainCard/JMainCard'
import JButton from '@/components/newComponents/JButton/JButton'
import SelectedPay from './components/SelectedPay.vue'
import useStore from '@/hooks/useStore.js'
const { getStore, clearItem } = useStore()
onLoad((options)=>{
  if(options.applyId){
    Object.assign(vdata,options)
    getApplyInfo(options)
  }
})
onShow(() => {
  if (getStore('mch') && getStore('mch').mchNo && getStore('mch').mchNo !== mchInfo.value.mchNo) {
    mchInfo.value = getStore('mch')
    getAppList()
  }
  if (getStore("appId") && getStore("appId").appId) {
    console.log(getStore("appId"));
    appInfo.value = getStore("appId")
  }
})
const mchInfo = ref({})
const payInfo = ref({})
const appInfo = ref({}) //应用信息
const pay = ref(null)
const vdata = reactive({
    configAppIdFlag:true
})
const jumpPage = (val) => {
  uni.navigateTo({
    url: `/pageWork/SelectedList/SelectedList?title=${val}&selected=${mchInfo.value.mchNo}`,
  })
}
// 跳转到通用选择页面
const jumpPageAppId = (val, selected, search) => {
  if (search) search = JSON.stringify(search)
  uni.navigateTo({
    url: `/pageWork/SelectedList/SelectedList?title=${val}&selected=${selected}&&search=${search}`,
  })
}
const next = () => {
  if (!mchInfo.value.mchNo) return uni.showToast({ title: '请选择商户', icon: 'none' })
  if (!payInfo.value.ifCode) return uni.showToast({ title: '请选择渠道', icon: 'none' })
  uni.showLoading({ title: '加载中...' })
  $applyPreCheck(mchInfo.value.mchNo, payInfo.value.ifCode).then((res) => {
    uni.hideLoading()
    // uni.navigateTo({
    //   url: `./applyDetail?code=${payInfo.value.ifCode}&state=${0}&name=${
    //     payInfo.value.ifName
    //   }&applyId=${""}&codeUrl=${false}&mchNo=${mchInfo.value.mchNo}`,
    // })
    vdata.applyId = vdata.applyId? vdata.applyId :'' // 防止地址栏被转为 undefined
    uni.navigateTo({ url: `./applyDetailWeb?ifCode=${payInfo.value.ifCode}&mchNo=${mchInfo.value.mchNo}&isView=0&copyInfoSourceApplyId=${vdata.applyId}&autoConfigMchAppId=${vdata.configAppIdFlag?appInfo.value.appId:''}` })
  })
}
const selected = (data) => {
  payInfo.value = data
}
function getApplyInfo(options) {
  $findMer(options.mchNo).then(({bizData})=>{
    mchInfo.value = bizData
    getAppList()
  })
}
const isConfigAppId = (e) => {
  vdata.configAppIdFlag = e.detail.value
}
// 查询默认应用
const getAppList = () => {
    if(!mchInfo.value.mchNo) return
  $getMchAppList({ mchNo: mchInfo.value.mchNo,defaultFlag: 1  }).then(({ bizData }) => {
    if (bizData.records.length > 0) {
      appInfo.value = bizData.records[0]
    }
  })
}
onUnload(()=>{
  clearItem('mch')
  clearItem('appId')
})
</script>

<style lang="scss" scoped>
.page-wrapper {
  .select-title {
    margin-top: 30rpx;
    margin-left: 50rpx;
    font-size: 33rpx;
  }
  .select-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 30rpx;
    .select-mch {
      margin: 20rpx;
    }
    .mch-info {
      display: flex;
      image {
        width: 93rpx;
        height: 93rpx;
        margin-right: 10rpx;
      }
      view {
        display: flex;
        flex-direction: column;
        font-size: 33rpx;
        font-weight: 700;
        text {
          margin-top: 15rpx;
          color: #8c8c8c;
          font-size: 25rpx;
          font-weight: 500;
        }
      }
    }
    image {
      width: 40rpx;
      height: 40rpx;
    }
    .img-wrapper {
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      width: 93rpx;
      height: 93rpx;
      margin-right: 20rpx;
      image {
        width: 60rpx;
        height: 66rpx;
      }
    }
  }
  .select-footer {
    position: fixed;
    right: 0;
    left: 0;
    bottom: 0;
  }
}
.change-config{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: 20rpx;
}
</style>
